Methods and systems for implementing personal dialing plans

ABSTRACT

A network-based personal dialing plan that allows a user to associate dialing strings of any length with easy-to-remember, user-selected aliases. A user may also define dialing rules, such as automatically adding digits to the directory number when the called number would be a long distance call from the calling location. A user may access the system to create or modify the user&#39;s personal dialing plan by voice telephone call (in a network having VXML capability), web interface, or other device, such as a wireless application protocol (WAP) phone or wireless personal digital assistant (PDA).

FIELD OF THE INVENTION

[0001] The present invention relates to telecommunications and moreparticularly relates to systems and methods for implementing personaldialing plans for users of telecommunications systems, such as thepublic switched telephone network (PSTN) and wireless systems.

BACKGROUND OF THE INVENTION

[0002] As telecommunications technologies advance, new and differenttelecommunications services are being offered to consumers. Manyhouseholds now have two or more telephone lines, and many people carryportable telephones, also known as mobile or cellular telephones. Thismeans that a person is often associated with several telephone numbers,also known as calling line numbers or directory numbers. An individual'sbusiness card may list as many as six different directory numbersincluding an office telephone number, an office fax machine number, amobile telephone number, a pager number, a home telephone number, and ahome fax machine number.

[0003] Because of the expanded demands for telecommunications service, ametropolitan area that was adequately served by a single area code forover fifty years suddenly needs two or more area codes to accommodateall of the telephones, fax machines, pagers, computer modems, and mobilephones in that area. As a result, a user calling someone in a nearbyneighborhood, in some cases merely across the street, may need to dial astring of ten or eleven digits instead of the traditional seven digitsrequired in the United States. In addition to the inconvenience oflonger dialing strings, it becomes increasingly difficult to rememberall of the directory numbers that the user frequently calls.

[0004] The telecommunications industry has provided some relief byincluding programmable memories in telephones and other communicationsequipment, allowing users to store the directory numbers offrequently-called friends, relatives, and business associates. Afterstoring the selected directory numbers into the equipment memory, theuser need only press a button assigned to, for example, a brother's hometelephone, and the telephone will automatically retrieve the brother'sdirectory number from memory and dial it for the user. However, suchmemory-equipped telephones typically have limited storage capacity, andthe stored directory numbers are only available when using thatparticular telephone. If the user uses a different telephone connectedto the same telephone line, unless the second phone has been separatelyprogrammed with the same list of directory numbers, it will be necessaryto dial the entire directory number because the first phone's memory isnot accessible through the second phone.

[0005] Another solution provided by the telecommunications industry is anetwork-based speed dialing list. The user stores frequently-calleddirectory numbers in a list maintained in memory within thetelecommunications network and each stored directory number is assigneda speed dialing code. The speed dialing code is defined by thetelecommunications service provider and can be, e.g., “*01” for thefirst memory location, “*02” for the second memory location, and so on.The speed dialing list is generally associated with the telephone lineand, thus, is available to any telephone, or other communicationsequipment, connected to that telephone line. However, the user mustremember who is associated with each assigned speed dialing code, forexample, “*01” calls the brother's home telephone, “*02” calls thebrother's mobile phone, “*03” calls the office fax machine, etc. For aspeed dialing list with a large number of entries, it can be difficultto remember the correct speed dialing code associated with the party tobe called without keeping a reference list at hand to look up thenumbers. Without such a reference, existing speed dialing methodsactually create a new problem of memorizing speed dialing code digitsthat are more or less arbitrarily assigned and have no relationship withthe actual directory number in such a way that would trigger the user'smemory of the party associated with any given speed dialing code.

[0006] Yet another solution provided by the telecommunications industryis the Centrex system, manufactured by companies such as Nortel Networksand Lucent Technologies. The Centrex system is an abbreviated dialingsystem that is used primarily by businesses. For example, manybusinesses allow users to dial a three or four digit extension to reachother people in their office or company. With Centrex, there is adefined group, where each member of the group is assigned an extensionnumber, and a single defined dialing plan for all users. To reach usersoutside of the defined group, an escape code, such as dialing “9,” istypically required to be entered by a user. Thus, Centrex providesabbreviated dialing based on a dialing plan with predefined rules, notbased on any customization by the user.

[0007] Accordingly, there is a need for a system and method forimplementing a personal dialing plan where a user can incorporate anabbreviated dialing scheme with a list or register of directory numbersof the people or locations that the user most frequently calls. There isa further need for a system and method for implementing a personaldialing plan where a user can set customized rules for abbreviateddialing based on the user's preferences and telephone service plan.Additionally, there is a need for a system and method for implementing apersonal dialing plan where a user may access the user's directorynumber register from remote locations and where customized dialing rulesare accessible and applicable from more than a single telephone orsingle telephone line associated with a user.

SUMMARY OF THE INVENTION

[0008] The present invention provides a network-based personal dialingplan which allows a user to associate dialing strings of any length witheasy-to-remember, user-selected aliases. A user may also define dialingrules, such as automatically adding digits necessary for the network tounderstand the destination directory number when the called number wouldbe a long distance call from the calling location. An exemplary systemaccording to the present invention is installed in a telecommunicationsnetwork and accessible by a service switching point (SSP) and a servicecontrol point (SCP).

[0009] According to the present invention, a user may access the systemto create or modify the user's personal dialing plan by voice telephonecall (in a network having VXML capability), web interface, or otherdevice, such as a wireless application protocol (WAP) phone or wirelesspersonal digital assistant (PDA). The user enters a complete dialingstring for a destination directory number and assigns an alias for thisdialing string. After storing this destination number, the user can dialthe defined alias in lieu of the complete destination number to call thedestination number. For example, a user may enter 202-555-1414 andassign “1414” as the alias for this entry. Later, to call this samedirectory number, the user simply dials 1414 to be connected with thedesired telephone number.

[0010] In one embodiment, a special feature digit, such as “*” or “#,”may be used to indicate to the SSP that the digit string is to beinterpreted according to the user's personal dialing plan. In anotherembodiment, the “#” key, or another special purpose key, may be used asan end-of-dialing delimiter or trigger to the SSP to interpret the digitstring as an alias. If the personal dialing plan is implemented on apersonal computer (PC) or smart phone, the alias is not limited tonumbers, but may consist of a string of alphanumeric characters. Adirectory and rules may be stored locally on “smart” devices, or theymay be stored centrally, providing access to a common register ofdirectory numbers and/or set of rules from multiple locations. In analternate embodiment, the directory and rules may be stored in aportable memory device, such as a smart card, that can be attached tovarious public or private telephone devices.

[0011] The present invention also allows users to set up other dialingrules. A user may, for example, set up a rule to automatically add thedigit “1” whenever the user wants to make a long distance call. The usermay establish a dialing rule that checks whether the area code dialed islocal to the user's area, as determined by the user's directory number,whenever the user dials a ten digit string for a destination directorynumber. If the area code is not local, the system according to thepresent invention may automatically add “1” to the ten digit stringbefore dialing it. If the area code is same as the user's area code, thesystem will decide, based on user-specified or network-based rules,whether to dial the dialed string including the area code or to dial thedestination directory number without the area code. The decision isbased on the SSP routing rules of the local telephone service provider'sdialing plan. In areas where ten-digit directory numbers are used, sincelocal charges may still apply when calling a different local area code,the user may define the rule that “1” is to be added to all directorynumbers having area codes other than the two or three area codes inwhich local calls may be made.

[0012] These and other objects, features, and advantages of the presentinvention may be more clearly understood and appreciated from a reviewof the following detailed description of the disclosed embodiments andby reference to the appended drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013]FIG. 1 illustrates an exemplary metropolitan area with multipletelephone area codes.

[0014]FIGS. 2 and 3 show definitions of a ten digit dialing string,typically used in the United States, and an international dialingstring, respectively.

[0015]FIG. 4 illustrates an exemplary environment and a block diagram ofan exemplary embodiment of the present invention.

[0016]FIG. 5 is a flow diagram illustrating an exemplary method forimplementing an exemplary system of the present invention.

[0017]FIG. 6 is a flow diagram showing an exemplary method of operationof the present invention.

[0018]FIG. 7 is a flow diagram illustrating an exemplary method ofoperation of the present invention.

[0019]FIG. 8 is a flow diagram illustrating an exemplary method ofoperation of an exemplary system of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0020] The following detailed description utilizes a number of acronymswhich are generally well known in the art. While definitions aretypically provided with the first instance of each acronym, forconvenience, Table 1 below provides a list of the acronyms and theirrespective definitions. TABLE 1 ACRONYM DEFINITION AIN AdvancedIntelligent Network ANI Automatic Number Identification DTMF Dual ToneMulti-Frequency IP Intelligent Peripheral ISDN Integrated ServiceDigital Network MSC Mobile Switching Center NANP North AmericanNumbering Plan OHD Off-Hook Delayed OHI Off-Hook Immediate PC PersonalComputer PDA Personal Digital Assistant PIN Personal IdentificationNumber PRI Primary Rate Interface PSTN Public Switched Telephone NetworkSCN Service Circuit Node SCP Service Control Point SMS ServiceManagement System SPA Service Package Application SS7 Signaling System 7SSP Service Switching Point STP Signal Transfer Point TCAP TransactionCapabilities Application Part TCP/IP Transmission ControlProtocol/Internet Protocol VXML or VoiceXML Voice Extensible MarkupLanguage WAP Wireless Application Protocol

[0021] Referring now in greater detail to the drawings, FIG. 1illustrates a typical metropolitan area 100 with more than one areacode. A city center 102 has one area code and surrounding areas 104,106, and 108 have area codes different from the area code assigned tocity center 102 and different from each other. In some metropolitanareas (e.g., Atlanta), there may also be an “overlay” area code thatcovers the same geographical area as two or more other area codes. Asshown in FIG. 1, telephones 110 and 112 are within city center 102,telephone 114 is within area 104, telephone 116 is within area 106, andtelephone 118 is within area 108. In this exemplary metropolitan area,telephone numbers include area codes based on the area within which thetelephone is located.

[0022] Depending on the implementation of dialing plan by the localtelephone service provider, a user at telephone 110 may dial a ten oreleven digit string to reach a user at another one of the telephones.Certain dialing plans, for example, those including an overlay areacode, require the user at telephone 110 to dial a complete ten digitstring to reach a user at telephone 112, even though they are assignedthe same area code. For example, in the Atlanta area, there are threearea codes, 404, 770, and 678, serving the metropolitan area. When auser at an office in the 404 calling area calls a number in the 770calling area, the user must dial the entire ten digit number, but neednot dial an access code “1” before the area code. The user must alsodial the area code, 404, to call a directory number at an adjacentbuilding with the same area code. In such cases, the area code cannot beomitted because the dialing plan requires the use of all ten digits.

[0023] In another example, in the Chicago area, three area codes servethe metropolitan area: 312, 630, and 847. A user working in downtownChicago, within the 312 area, does not need to include the area codewhen dialing a number with the same area code. The user needs to dialonly a seven digit string. However, the user must dial “1” and theentire ten digit string when calling a number in the suburbs in the 630calling area, even though the call will not be charged as a longdistance call.

[0024] Directory numbers in North America are defined according to theNorth American Numbering Plan (NANP). Generally, a directory number isdefined as a ten digit number as shown in FIG. 2. The ten digit numberis composed of a three digit area code, a three digit central officeprefix, and a four digit telephone line number. As explained above,whether to dial the entire ten digits or to add a “1” before dialing aten digit string is dependent on the local service provider's dialingplan.

[0025] A dialing string becomes even lengthier when making a call to aparty in another country. FIG. 3 illustrates the format of a dialingstring for an international directory number. The international dialingstring is composed typically of an international access code, which isgenerally “011,” a country code, a city code, and a telephone linenumber. The country code may be one to three digits, the city code maybe one to four digits, and the telephone line number may be six to eightdigits. For example, when dialing to a destination directory number inthe city of Sao Paulo in Brazil, a total of fifteen digits is required.

[0026]FIG. 4 is a diagram of an exemplary embodiment and exemplaryenvironment for operation of exemplary methods and systems of thepresent invention. Connected to a public switched telephone network(PSTN) 402, an exemplary environment is an Advanced Intelligent Network(AIN) 404. For brevity, only a basic explanation of AIN 404 is provided.Where AIN 404 operates or is composed differently in an important aspectfrom that which would be understood by those skilled in the art,additional details are provided herein. For further informationregarding the referenced AIN 404 and aspects thereof, the interestedreader is referred to the commonly assigned patent to Weisser, U.S. Pat.No. 5,430,719, which is incorporated herein by reference.

[0027] AIN 404 includes a variety of interconnected network elements. Agroup of such network elements includes the plurality of central officeswhich are indicated as service switching points (SSPs) 406 and 408 inFIG. 4. An SSP typically includes switch functionality, but alsoincludes other functionality so as to communicate with other AINelements as those skilled in the art understand. As further illustratedin FIG. 4, SSPs 406 and 408 have a plurality of subscriber lines, orcalling lines, connected thereto. Each SSP serves a designated group ofcalling lines, and thus, the SSP that serves a particular calling linemay be referred to as its serving SSP. For example, SSP 406 servescalling lines 410 and 412, while SSP 408 serves calling lines 414 and416. Each calling line is connected typically to a piece of terminatingequipment including a plurality of telephones individually referenced as418, 420, 422, and 424. Although telephones are illustrated as thepieces of terminating equipment in FIG. 4, those skilled in the art willunderstand that such pieces include other telecommunications devicessuch as facsimile machines, computers, modems, etc.

[0028] Pursuant to a preferred embodiment, each active calling line inan AIN is assigned a multi-digit calling directory number. In the U.S.,the directory number typically consists of ten digits. In thedescription of the present invention, the term “directory number” isused in its generally understood meaning to be the number which isdialed or input by a caller or source and used by the network to routethe communication so as to reach a piece of terminating equipment on acalling line associated with the dialed directory number. A directorynumber is commonly referred to as a telephone number or calling linenumber.

[0029] SSPs 406 and 408 are interconnected by a plurality of trunkcircuits 426. These are the voice path trunks that interconnect the SSPsto connect communications. The term “communication” or “call” is usedherein to include all messages that may be exchanged between a caller(or calling party or originating party or subscriber) and a called partyor destination.

[0030] Each of SSPs 406 and 408 is connected to another type of AINelement referred to as a local signal transfer point (STP) 428 viarespective data links using the Signaling System 7 (SS7) protocol, whichis well known in the art. Much of the intelligence of the AIN resides inyet another type of AIN element referred to as a local service controlpoint (SCP) 430 that is connected to STP 428 over an SS7 data link.Among the functions performed by SCP 430 are the maintenance of networkdatabases and subscriber databases as represented collectively bydatabases 432. Databases 432 may be used in providing telecommunicationservices to a subscriber. Typically, SCP 430 includes service packageapplications (SPAs) that are used in connection with or as part ofdatabases 432 in the application of telecommunication services orenhanced features to calling lines.

[0031] Local STP 428 may be connected to other network elements of AIN404 through a regional STP 434, which in turn may be connected to aregional SCP 436. Both SCP 436 and SCP 430 are connected via respectivedata links to a service management system (SMS) 438. SMS 438 interfacesto business offices of the local exchange carrier (LEC) andinterexchange carriers (IXCs).

[0032] In order to keep the processing of data and calls as simple aspossible, a relatively small set of triggers is defined at the SSPs foreach call. There are three types of triggers: originating, terminating,and dialing plan. With regard to the present invention, a trigger in theAIN is an event associated with a particular calling line (i.e.,originating) that generates a packet to be sent to an SCP. The triggercauses the SCP to query its Service Package Applications (SPAs) anddatabases for processing instructions with respect to the particularcall. The results are sent back to the SSP in a response from SCP 430through STP 428. The return packet includes instructions to the SSP asto how to process the call. The instructions may be to tell the SSP totake some special action as a result of a customized calling service orenhanced feature, such as a personal dialing plan. In response, the SSPmoves through its remaining call states, collects the dialed digits, andmay generate further packets that are used to set up and route the call.

[0033] SMS 438 also is connected via a data link 440 to one or moreintelligent peripherals such as the illustrated intelligent peripheral(IP) 442. In an exemplary environment, IP 442 may be a service circuitnode (SCN). By this data link 440, SMS 438 provides IP 442 withinformation relating to new subscribers and updates for existingsubscribers, and with information relating to network operations such asnew services, upgrades to existing services, measurements, audits, andmaintenance. The IP 442 that receives information from SMS 438 may beone of many kinds of elements used in telecommunication services. IP 442includes voice and dual tone multi-frequency (DTMF) signal recognitiondevices and voice synthesis devices.

[0034] In addition, IP 442 is connected to one or more (but usually onlya few) SSPs via Integrated Service Digital Network (ISDN) links 444 asshown by the connection to SSP 408. Optionally, IP 442 may be connectedto one or more SCPs via a TCP/IP connection, such as TCP/IP connection446 which connects IP 442 to SCP 430. Also, a personal computer (PC) 448may be connected to SCP 430 and IP 442 via Internet 450. Firewalls 452and 454 may also be present.

[0035] According to exemplary systems and method of the presentinvention, aliases and dialing rules may be entered into a personaldialing plan service. An exemplary system according to the presentinvention enables a user to call a party without having to dial a longstring of numbers by selecting meaningful aliases that the user canreadily associate with the party to be called. Prior to using a personaldialing plan to place a call, telephone 418 is utilized by the user toconfigure the user's personal dialing plan. The user dials a specialconfiguration access code, for example, *333, to access the personaldialing plan service. The user may also dial a special configurationdirectory number to set up or modify a personal dialing plan. After theuser dials the special access code or the special directory number, thecall is answered by SSP 406 serving telephone 418. After examining thedialed string, SSP 406 recognizes the instruction to access a personaldialing plan and forwards the call information to SCP 430 via STP 428.SCP 430 receives the call information and routes it to IP 442.

[0036] IP 442 provides means for interacting with the user. IP 442 maybe physically adjacent to or remote from SCP 430 and is accessible via adata link, such as TCP/IP connection 446. IP 442 prompts the user toenter dialing strings and an alias associated with each dialing string.A complete dialing string could be a seven digit string or a ten digitstring, depending on the local service provider's dialing plan, forcalls made within the U.S. For international telephone numbers, acomplete dialing string may be anywhere from eight to fifteen digits,not including the international access code. The information from theuser is then stored in a database in IP 442. Alternatively, theinformation from the user may be stored in SCP 430 or databases 432, andIP 442 may be used to collect digits, play tones, and play or displaynames.

[0037] In another embodiment, the user may use computer 448, rather thantelephone 418, connected to SCP 430 and IP 442 via Internet 450 to setup a personal dialing plan by entering information through a graphicaluser interface (GUI) using a keyboard, mouse, or other peripheraldevice. The user may also use a telephone equipped with dual tonemulti-frequency (DTMF) dialing. If IP 442 is equipped with voicerecognition technology, e.g., VoiceXML, the user may also create apersonal dialing plan by accessing the voice recognition function andspeaking into the telephone.

[0038] As an example, a user at telephone 418 may create an alias fortelephone 424. The user dials an access code to gain access to IP 442and sets up an alias for telephone 424. The user may use the last fourdigits of the directory number associated with telephone 424 number asthe alias. Other aliases that will help the user associate the aliaswith the party at telephone 424 may be selected. For example, the aliascould be the person's birthday, or the digits can be selected accordingto the letters associated with the digits on a telephone keypad, wherethe letters spell the called party's name or nickname. Other possiblevariations will be apparent to those of skill in the art. If thepersonal dialing plan is implemented on a PC that has dialingcapabilities or a smart phone, the alias may consist of a string ofletters, numbers, or a combination thereof. Note, however, that this maymake it difficult to dial the alias from a conventional telephone.

[0039] After setting up the alias, the user may simply dial the aliaswhenever the user wants to reach the party at telephone 424. Forexample, the user may dial *5678 from telephone 418, and this string,“*5678,” is interpreted by SSP 406. SSP 406 interprets it as an aliasfor a personal dialing plan and forwards it to SCP 430 for furtherinterpretation. SCP 430 receives the alias and retrieves thecorresponding dialing string, for example, 404-234-5678, from IP 442.The retrieved dialing string is returned to SSP 406 as the translateddestination directory number to which the user's call is to be routed.SSP 406 then replaces “*5678” with “404-234-5678” and routes the callaccordingly. The call is then routed to SSP 408, which serves telephone424, via STP 428. SSP 408 then connects the call to telephone 424.

[0040] In an alternate embodiment, the personal dialing plan service maybe implemented on a web server that also has dialing capabilities. Theuser enters information through fields on a personal dialing plan webpage. Software functionality, such as Java, is used to collect thedigits and send them to the web server. The server then interprets theresults and implements the service logic necessary to route the call. Inanother embodiment, a personal dialing plan service may be implementedin a personal computer or “smart” phone that is capable of executingservice logic and either storing information or accessing storedinformation across an appropriately-connected network.

[0041]FIG. 5 is an exemplary flow chart for a method of configuring apersonal dialing plan according to an embodiment of the presentinvention. The user accesses a server, intelligent peripheral (IP), orother platform where a personal dialing plan service is implemented bydialing a feature code or an access telephone number, block 502. Theserver receives the user's request and may execute some authenticationprocess, such as asking for a personal identification number (PIN)before allowing the user to access or create a personal dialing plan.

[0042] After verifying that the user is a subscriber to the personaldialing plan service, the user's access is granted. The server promptsthe user with a menu of activities and asks the user to enter aselection. For example, the user may be requested to press “1” to add anentry, press “2” to delete an entry, press “3” to define a dialing rule,or press “4” to delete a dialing rule. If the user wants to create a newalias, block 504, the user is prompted to enter the complete dialingstring, block 506. The complete dialing string is a dialing stringrecognizable by the local telephone service provider's dialing plan. Forexample, if the local telephone service provider's dialing plan requiresdialing of a ten digit string when calling a neighbor located next door,then the user must enter the complete ten-digit directory number. If theentry is for dialing a long distance number, then the access code “1”must precede the complete directory number. If the local serviceprovider's dialing plan allows for seven digit dialing for calls madewithin the same area code, then a complete dialing string may includeonly seven digits.

[0043] After entering the complete dialing string, the server promptsthe user to enter an alias to identify the complete dialing string. Theuser may enter an easy to remember string as the alias, block 508. Forexample, if the user is setting up an alias for a client's telephonenumber and the client is the only party that the user calls with adirectory number that includes the “630” area code, the user can use“630” as the alias for the client's telephone number. If a terminalcharacter is used, then the alias is not required to be of fixed length.For example, the user may set up another alias, “2345,” for a friend'smobile phone by entering “2345#,” in which case the “#” key is used toindicate the end of the alias. Alternatively, the user can define adialing rule, as discussed in more detail below, where all aliases are,for example, four digits in length.

[0044] Before accepting the alias, the server determines whether thealias has been assigned to another entry in the dialing plan. If thealias has been previously assigned to another entry, the server willprompt the user to enter a different alias for the dialing string or askwhether the user wishes to replace an existing entry with a new dialingstring. After the user enters the alias, the server checks whether theuser wants to save another entry, block 510, or perform another command,block 512. If the user does not want to enter additional dialing stringsor commands, the user is disconnected from the server, block 514.Optionally, the server may query the user as to whether the user wantsto test an alias once that alias has been entered by the user. If theuser chooses to test the alias, a call is initiated by the server.

[0045] The user may choose to delete an existing entry from the dialingplan, block 516. The user enters an alias that identifies the entry,block 518, and the entry is retrieved from the dialing plan andpresented to the user for confirmation. The user confirms the retrievedentry is to be deleted, block 520, and the entry is deleted from thedialing plan. At the end of deletion, the server queries whether theuser wants to delete another entry, block 522, or enter another command,block 512.

[0046] The user may also define other dialing rules to be applied tocalls originating from the directory number (or numbers) for which theuser has subscribed to the personal dialing plan service, block 524. Forexample, if the user's telephone service provider has a dialing planthat requires a ten digit dialing string even when calling a next doorneighbor, the user can specify that the user's area code be addedwhenever seven digits are dialed. The user may also specify several areacodes for which the long distance access code “1” need not be dialed,and the system will determine whether a dialed string has one of thespecified area codes before adding “1” to the dialed string. The userdefines a dialing rule, block 526. The user is then prompted whether theuser wishes to define another dialing rule, block 528.

[0047] Another rule option that the user may program is a timer that canbe used to set a delay period after the last character or number of thealias is dialed at which time the system proceeds with its search forthe dialing string associated with the alias that was entered, withoutwaiting for a separate termination indicator. A timer option may providea senior user or a physically-disabled user a means to establish adialing rule that adapts to the user's physical condition. For example,a dialing rule may be defined to allow extra time between input of eachdigit so that the SSP's dialing timer will not expire before the userenters all of the digits.

[0048] The user can also enter a command to delete an establisheddialing rule, block 530. The user may select the rule to be deleted froma list of rules displayed by the server, or the user may specify therule by entering a code that identifies the rule, block 532. The user isthen prompted whether the user wishes to delete another dialing rule,block 534. If the user enters a command that is not recognized by theserver, an error message is played, block 536, and the user is promptedto enter another command.

[0049]FIG. 6 is a flow chart for a dialing plan set up process accordingto an embodiment of the present invention. A server, IP, or otherplatform where a personal dialing plan service is implemented receivesthe access request from the user, block 602, and the server may invokean authentication process before allowing the user to create or modify adialing plan. After the user provides a proper PIN or otheridentification information, the server retrieves the user's dialingplan, block 604. A dialing plan is associated with and identified by atleast one directory number, and the server may obtain the directorynumber from the user's input or from the automatic number identification(ANI) feature of the serving SSP. If there is no dialing plan associatedwith the directory number, a new one is created. The server prompts theuser with a menu of activities and asks the user to enter a selection.

[0050] After the dialing plan is retrieved or created, the server checksfor the command received from the user. If the user wants to add a newentry, block 606, the server prompts the user to enter a completedialing string. The server receives a complete dialing string, block608, and prompts the user to enter an alias for the dialing string.After the alias is received, block 610, the server saves the dialingstring and the alias in an entry, block 612. The server then checkswhether the user wants to test the alias, block 613. If the user choosesto test the alias, the server initiates a call, block 614. To initiate acall, the IP has an off-hook immediate trigger, as discussed in furtherdetail below. Once the alias is tested or if the user does not want totest the alias, the server prompts the user whether the user wants tosave another entry, block 615, or enter another command, block 616. Ifthe user is done with the dialing plan, the server saves the dialingplan, block 618.

[0051] If the user's command is to delete an entry from the dialingplan, block 620, the user enters an alias associated with the entry tobe deleted, block 622, and the server retrieves the entry and presentsthe retrieved entry to the user for confirmation, block 624. Analternate approach to this step is to make the “delete” action atwo-step action, where the first step is to present a list of currententries for selection and the second step is deletion of the selectedentry. After the user confirms the entry is to be deleted, the serverdeletes the entry from the dialing plan, block 626, and checks whetherthe user wants to delete another entry, block 628, or enter anothercommand, block 616. If the user has completed modifying the dialingplan, the server saves the dialing plan, block 618.

[0052] If the user wants to define a dialing rule, block 630, the userspecifies the rule, and the system receives the rule, block 632, andstores the rule in the dialing plan, block 634. The dialing rule may beassigned an identification number, so that the user can later delete therule by its identification number. After storing the dialing rule, theserver checks whether the user wants to define another dialing rule,block 636, or enter another command, block 616, before saving thedialing plan, block 618.

[0053] If the user wants to delete a dialing rule, block 638, the serverreceives a dialing rule identification from the user, block 640, anddeletes the identified dialing rule from the dialing plan, block 642.Similar to what has been described above, the server checks whether theuser wants to delete another dialing rule, block 644, or enter anothercommand, block 616, before saving the dialing plan, block 618. If theuser command is not recognized, the server provides an error message,block 646, and prompts the user for another command, block 616.

[0054]FIG. 7 is a flow chart illustrating an embodiment of the presentinvention that is implemented in an AIN or softswitch environment thatis part of or connected to the PSTN. FIG. 7 is discussed with referenceto elements of the AIN, but it should be understood that equivalentelements of a softswitch environment may be used, such as the softswitchequivalent of the triggers discussed below, an application serverinstead of an SCP, and so on. The directory and rules are stored in anSCP or in an element or platform accessible to the SCP, such as an IP.The SSP is equipped with an off-hook immediate (OHI) trigger and usesthe OHI trigger when handling personal dialing plans. When the userpicks up the telephone (i.e., the telephone goes off-hook), the OHItrigger is invoked, and the SSP sends an inquiry to the SCP where thedirectory and rules are stored before providing a dial tone to the user.Alternatively, an off-hook delayed (OHD) trigger may be used. In thecase of using an OHD trigger, the digits entered are collected andanalyzed by the SSP and sent to the SCP to determine the correspondingcomplete directory number according to the user's personal dialing plan.In the case of using an OHI trigger, the caller is immediately connectedto an element such as an IP. The IP prompts the user for digit entry andthen collects and analyzes the entered digits before performing the samecomplete directory number determination that the SCP performs when anOHD trigger is used.

[0055] Upon recognizing that the user is subscribed to the personaldialing plan service, the SSP collects dialed digits or the SCPredirects the call to the IP where digits are collected. The SSP/IPcollects the dialed digits and handles the dialed digit stringsaccording to the personal dialing plan. In the case of an OHI trigger,this may be accomplished in conjunction with a special dialing plantimer associated with the personal dialing plan that defines the allowedtime duration between entered digits, using an expiration of this timeras an indication of the end of dialed digit entry. After applying thespecial dialing plan timer from the personal dialing plan, if any, theSSP/IP checks whether the dialed digit string is a complete string byapplying the local service provider's dialing plan rules (e.g., tendigits are required to dial directory numbers with the same area code asthe user's directory number) and the user's personal dialing plan. Thisstep may include a query to an external database where the user'saliases and corresponding complete directory numbers are stored. Thedialed digit string is first checked against the local serviceprovider's dialing plan and then checked against the user's personaldialing plan.

[0056] The SSP/IP receives the dialed digit string, block 702, andchecks whether the dialed digit string is a complete dialing stringaccording to the local service provider's dialing plan, block 704. Ifthe dialed digit string is a complete string, then the SSP routes theuser's call to its destination, block 710. If the dialed digit string isnot a complete string, the SSP then checks whether the dialed digitstring is a valid string according to the user's personal dialing plan,block 706. This may be accomplished by comparing the dialed digit stringagainst predefined entries in the user's personal dialing plan containedeither in the SCP or another external database. The SCP receives theinformation on the dialed digit string and checks it against the user'spersonal dialing plan, accessing an external database if necessary. Ifthe dialed digit string is a valid string according to the user'spersonal dialing plan, the SCP/external database identifies the completedialing string associated with the dialed digit string (i.e., alias) andsends the complete dialing string back to the SSP/IP. The SSP/IPreceives the complete dialing string, block 708, and substitutes thecomplete dialing string for the dialed digit string. The SSP/IP routesthe user's call using the complete dialing string, block 710. If thedialed digit string is not a valid string, an error message is played tothe user, block 712.

[0057] The dialed digit string can be a complete dialing string inseveral ways. The dialed digit string is a complete string if it followsone of rules of the local service provider's dialing plan, for example,a ten digit string preceded by the long distance access code “1”; aninternational number preceded by the international access code “011”; aten digit string if the provider's dialing plan utilizes ten digitdialing for local areas; a seven digit string if the provider's dialingplan uses seven digit dialing for local calls or calls within the samearea code; any short dialing string for special services such as 911; ora special character followed by a numeric string for special features,such as *69 for call return.

[0058] The dialed digit string can also be a valid string if it followsone of rules defined by the user's personal dialing plan according tothe present invention. A valid string can be converted to a completestring by following rules defined in a personal dialing plan. The usermay define multiple dialing rules for a personal dialing plan, forexample:

[0059] a short string preceded and/or followed by a special charactersuch as “*” or “#,” or a combination of these special characters, usedto retrieve a complete dialing string according to the local serviceprovider's dialing plan; the user's area code is added to any sevendigit string, if the local service provider's dialing plan requires tendigit dialing for numbers within the same area code; the access code “1”is added to any ten digit string, if the call is a long distance call;and a dialing timer that is different from any timer that may be used aspart of the local service provider's dialing plan.

[0060] The rules listed above are exemplary rules and the user mayspecify any other dialing rule that the user finds helpful.

[0061] If the dialed string is a valid string according to one ofdialing rules of the personal dialing plan, the SSP applies the rule toobtain a complete dialing string that is recognized by the local serviceprovider's dialing plan. After obtaining the complete dialing string,the SSP/IP routes the user's call using the complete string. Forexample, if the dialed string is “*1234” and the user has defined adialing rule that associates “1234” with “404-987-1234,” then“404-987-1234” is used by the SSP/IP as the complete dialing string, andthe user's call is routed to that directory number.

[0062]FIG. 8 is a flow chart illustrating a process for applying dialingrules according to an embodiment of the present invention. In thisexemplary embodiment, the local service provider's dialing plan requiresten digit dialing for all domestic calls, even for directory numbersincluded in the same area code or in the same local calling area as theuser. The access code “1” is required for domestic long distance calls,but not for calls to other area codes that are within the user's localcalling area. The dialed string is analyzed against dialing rules in thepersonal dialing plan, block 802. It is determined whether the dialedstring is a defined alias for a complete string, block 804. If thedialed string is a defined alias, the server retrieves the correspondingcomplete dialing string, block 806, and the call is routed to thetelephone associated with the complete dialing string, block 808.

[0063] If the dialed string is a seven digit string, block 810, thedefault area code (e.g., the user's own area code) is added, block 812,and the call is routed to its destination, block 814. If the dialedstring is a ten digit string, block 816, the first three digits of thedialed string are analyzed to determine whether the area code of thedialed string is within the user's local calling area (i.e., not a longdistance call), which may encompass one or more area codes, block 818.If the call is a local call, then the call is routed to its destination,block 814. If the call is outside the user's local calling area, then a“1” is added to the dialed string, block 820, and the call is routed toits destination, block 814. If the dialed string is not a seven or tendigit string or a recognized alias, the user's personal dialing planrules are analyzed to see what other rules, if any, apply, block 822. Ifno other rules apply, the user receives an error message.

[0064] There is an interaction between the number of acceptable digits,whether a special personal dialing plan timer is activated, and whetheran alias can be created where its digits are a subset of another alias.For example, if a special timer is enabled as part of the user'spersonal dialing plan, it is acceptable to use “123” and “1234” asunique aliases. However, if no timer is enabled, as soon as the personaldialing plan service recognized “123,” the call would be routed to thedirectory number associated with the “123” alias. If the alias length isdefined as a fixed number of digits, then this problem does not occur.

[0065] Any such problems can generally be solved with editing rulesbased on the current configuration of the user's personal dialing plan.For example, if the user has no timers enabled and no minimum aliaslength, the user is not allowed to enter a new alias that is a subset ofan existing alias or vice versa. In other words, if “1234” is anexisting alias, the user is not allowed to enter “123 as a new alias,and if “123” is an existing alias, the user is not allowed to enter“1234” as a new alias. This solution is complicated by the fact that theuser is generally allowed to delete, add, or edit dialing rules or aliasand dialing string entries at will. In this event, the user's personaldialing plan is reviewed following the establishment of any new rules oraddition of any new alias entries to determine whether there areinconsistencies. Any inconsistencies are reported to the user, who hasthe opportunity to correct either the rules or the alias entries toeliminate the inconsistencies.

[0066] Typical user controls can be accessed via a voice telephone call(VoiceXML), web interface, or other device such as a WAP phone or PDA.Depending on the capabilities of the device used to access the personaldialing plan service, the service modification features available to theuser may vary. Typically, users will be able to add, list for selection,delete a selection, or edit a selection for entries and dialing rules asdiscussed above. Users may also activate and deactivate the personaldialing plan service or either the rule-processing or alias/dialingstring register component of the service.

[0067] For most users, their acquaintances can be identified by the lastfour digits of their acquaintances' directory numbers. However, enteringthe names and directory numbers of all of these people would be onerousfor many users. To address this, all incoming calls and outgoing calls,depending upon the technology available for outbound calling, may belogged and a default register created, using the calling name suppliedwith the incoming and outgoing directory numbers. The creation of thisdirectory could be based on a single default rule, such as creating afour-digit alias for each directory number based on the last four digitsof the directory number.

[0068] Additionally, while the personal dialing plan service maytypically be associated with a subscribed line, the user may be able todial an access directory number from any telephone to access a server orIP that supports the user's personal dialing plan service. By enteringidentification and authorization information, the user can access theuser's personal dialing plan, although not calling from a subscribedline or directory number associated with the personal dialing plan. Forexample, if the user has subscribed to the personal dialing plan servicefor his home telephone line, the user may want to access the user's planwhen using a mobile phone. Thus, the user would dial an access directorynumber from the mobile phone, enter authorizing and identifyinginformation, and then be able to access the user's personal dialing planand make calls by dialing aliases, just as if the user was calling fromhis home telephone.

[0069] The foregoing description of the exemplary embodiments of theinvention has been presented only for the purposes of illustration anddescription and is not intended to be exhaustive or to limit theinvention to the precise forms disclosed. Many modifications andvariations are possible in light of the above teaching. For example, theabove described methods and systems are transferable to wireless and IPtelephony networks and may be used in these networks along with thewireless equivalent of the AIN.

[0070] The embodiments were chosen and described in order to explain theprinciples of the invention and their practical application so as toenable others skilled in the art to utilize the invention and variousembodiments and with various modifications as are suited to theparticular use contemplated. Alternative embodiments will becomeapparent to those skilled in the art to which the present inventionpertains without departing from its spirit and scope. Accordingly, thescope of the present invention is defined by the appended claims ratherthan the foregoing description and the exemplary embodiments describedtherein.

What is claimed is:
 1. In a telecommunications network, a method forprocessing a call originated by a user according to a personal dialingplan of the user, comprising: receiving a dialed digit string; analyzingthe dialed digit string to determine whether the dialed digit string isa complete string according to a dialing plan of the local telephoneservice provider; if the dialed digit string is a complete string,routing the call to the dialed digit string; if the dialed digit stringis not a complete string, determining whether the dialed digit string isa valid string according to the personal dialing plan; if the dialeddigit string is a valid string, retrieving a corresponding dialingstring; and routing the call to a directory number associated with thecorresponding dialing string.
 2. The method of claim 1, furthercomprising substituting the corresponding dialing string for the dialeddigit string.
 3. The method of claim 1, further comprising playing anerror message if the dialed digit string is not a valid string or acomplete string.
 4. The method of claim 1, wherein retrieving thecorresponding dialing string comprises searching a register for an entrymatching the dialed digit string.
 5. The method of claim 1, whereinretrieving the corresponding dialing string comprises applying a rule tothe dialed digit string whereby the dialed digit string is convertedinto a complete dialing string.
 6. In a telecommunications network, amethod for processing a call originated by a user according to apersonal dialing plan of the user, comprising: receiving a dialed digitstring; analyzing the dialed digit string to determine whether thedialed digit string matches an alias entry in the personal dialing plan;if the dialed digit string matches an alias entry, retrieving acorresponding dialing string and routing the call to a directory numberassociated with the corresponding dialing string; if the dialed digitstring does not match an alias entry, determining whether the dialeddigit string is a complete string according to a dialing plan of thelocal service provider; if the dialed digit string is a complete string,routing the call to the dialed digit string.
 7. The method of claim 6,further comprising playing an error message if the dialed digit stringis not a complete string or does not match an alias entry.
 8. The methodof claim 6, further comprising applying a rule from the user's personaldialing plan if the dialed digit string does not match an alias entryand is not a complete string whereby the dialed digit string isconverted into a complete digit string.
 9. In a telecommunicationsnetwork, a system for processing a call originated by a user accordingto a personal dialing plan of the user, comprising: a first networkelement being operative to analyze the dialed digit string to determinewhether the dialed digit string is a complete string according to adialing plan of the local telephone service provider and, if the dialeddigit string is a complete string, to route the call to the dialed digitstring; a second network element being operative to determine whetherthe dialed digit string is a valid string according to the personaldialing plan and, if the dialed digit string is a valid string, toretrieve a corresponding dialing string; and the first network elementbeing operative to route the call to a directory number associated withthe corresponding dialing string.
 10. The system of claim 9, furthercomprising the second network element being operative to send thecorresponding dialing string to the first network element.
 11. Thesystem of claim 9, further comprising the second network element playingan error message if the dialed digit string is not a valid string or acomplete string.
 12. The system of claim 9, further comprising thesecond network element being operative to search a register for an entrymatching the dialed digit string.
 13. The system of claim 9, furthercomprising the second network element being operative to apply a rule tothe dialed digit string whereby the dialed digit string is convertedinto a complete dialing string.
 14. In a telecommunications network, asystem for processing a call originated by a user according to apersonal dialing plan of the user, comprising: a first network elementbeing operative to analyze a dialed digit string to determine whetherthe dialed digit string matches an alias entry in the personal dialingplan; if the dialed digit string matches an alias entry, the firstnetwork element being operative to retrieve a corresponding dialingstring and to send the corresponding dialing string to a second networkelement; the second network element being operative to route the call toa directory number associated with the corresponding dialing string; andif the dialed digit string does not match an alias entry, the secondnetwork element being operative to determine whether the dialed digitstring is a complete string according to a dialing plan of the localservice provider and, if so, to route the call to the dialed digitstring.
 15. The system of claim 14, further comprising the first networkelement being operative to apply a rule from the user's personal dialingplan if the dialed digit string does not match an alias entry and is nota complete string whereby the dialed digit string is converted into acomplete digit string.
 16. The system of claim 14, further comprisingthe first network element being operative to play an error message ifthe dialed digit string is not a complete string or does not match analias entry.
 17. In a telecommunications network, a method for creatingor administering a personal dialing plan of a user, comprising: queryingwhether the user wants to enter a new entry, and, if so, prompting theuser to enter a complete dialing string and an alias; querying whetherthe user wants to define a dialing rule, and if so, prompting the userto enter the dialing rule; and querying whether the user wants to enteran additional entry, define an additional dialing rule, or enter anothercommand.
 18. The method of claim 17, further comprising saving thecomplete dialing and the alias in the personal dialing plan.
 19. Themethod of claim 17, further comprising saving the dialing rule in thepersonal dialing plan.
 20. The method of claim 17, further comprisingquerying whether the user wants to delete an existing entry andprompting the user to enter an alias of the existing entry to bedeleted.
 21. The method of claim 20, further comprising receiving thealias of the existing entry and presenting the existing entry to theuser for confirmation.
 22. The method of claim 21, further comprisingquerying whether the user wants to delete another existing entry. 23.The method of claim 17, further comprising querying whether the userwants to delete an existing dialing rule and prompting the user to enterthe existing dialing rule to be deleted.
 24. The method of claim 23,further comprising querying whether the user wants to delete anotherexisting dialing rule.
 25. The method of claim 17, wherein the dialingrule is a special timer enabled by the user.
 26. The method of claim 17,further comprising querying whether the user wants to test the new entryand, if so, initiating a call based on the ne w entry.
 27. In atelecommunications network, a system for processing a call originated bya user according to a personal dialing plan, comprising: a first networkelement being operative to collect a dialed digit string and to send thedialed digit string to a second network element; the second networkbeing operative to receive the dialed digit string and to determinewhether the dialed digit string is a valid string according to thepersonal dialing plan; and a third network element being operative toreceive instructions for routing the call from the second networkelement and to route the call to a directory number associated with thedialed digit string.
 28. The system of claim 27, wherein the firstnetwork element is a personal computer connected to the second networkelement via the Internet.
 29. The system of claim 27, further comprisingthe second network element being operative to retrieve the personaldialing plan.
 30. In a telecommunications network, a system forprocessing a call originated by a user according to a personal dialingplan, comprising: a first network element being operative to collect adialed digit string, to determine whether the dialed digit string is avalid string according to the personal dialing plan, and to send acorresponding dialing string to a second network element; and the secondnetwork element being operative to receive the corresponding dialingstring and to route the call to a directory number associated with thecorresponding dialing string.
 31. The system of claim 30, wherein thefirst network element is a programmable device.
 32. The system of claim31, wherein the programmable device is a personal computer or telephone.